export const roleList = {
    // 平台管理员
    0: [
        { path: "/dataStatistics" },    // 首页（统计）
        { path: '/shopDoor' },      // 门店管理
        { path: '/shopDoorDetail/:id' },  // 门店管理详情
        { path: '/user' },      // 用户管理
        { path: '/admin' },     // 管理员管理
        { path: '/applyFor' },  // 申请处理(大模块)
        { path: '/shopApply' },     // 门店申请
        { path: '/mess' },        // 门店申请详情
        { path: '/shopAdmin' },     // 门店管理员申请
        { path: '/message' }      // 管理员申请详情

    ],
    // 门店管理员
    1: [
        { path: "/dataStatistics" },   // 统计数据
        { path: '/shopDoor' },      // 门店管理
        { path: '/shopDoorDetail/:id' },  // 门店管理详情
        { path: '/commodity' },     // 商品管理
        { path: '/commoditydetail/:id' }, // 商品管理详情
        { path: '/applying' },       // 申请中
        { path: '/orderManage' },  // 订单管理（大模块）
        { path: '/goodsOrder' },    // 商品订单
        { path: '/serviceOrder' },   // 服务订单
        { path: '/service' },  // 服务
    ]
}




/**
 *  role0 // 所有权限
 *  role1 // 没有操作日志权限
 *  role2 // 只有组织架构权限
 *  role3 // 只有日志权限
 *
 * -----------假设这是调用接口返回的权限列表-------------
 */
export const getRoleJson = (url) => {
    return new Promise(resolve => {
        return resolve(roleList[url] || roleList.admin);
    });
};

/**
 * 递归判断路由，删除没有的权限
 * @param {Array} tree // 系统所有路由树
 * @param {Array} roles // 后端返回的权限列表
 * @return Array
 */
export function _getRoleList(tree, roles) {
    let finalTree = [...tree];
    let fun = list => {
        for (let i = 0; i < list.length; i++) {
            let c = list[i];
            if (roles.findIndex(d => d.path == c.path) > -1 || c.hidden) {
                if (c.children && c.children.length) {
                    fun(c.children);
                }
            } else {
                let {
                    meta: { children }
                } = c;
                if (children && children.length) {
                    let isHave = children.findIndex(e => roles.findIndex(f => f.path == e) > -1);
                    // 如果不存在-删除，如果存在-继续递归
                    if (isHave == -1) {
                        list.splice(i, 1);
                        i--;
                    } else {
                        if (c.children && c.children.length) {
                            fun(c.children);
                        }
                    }
                } else {
                    list.splice(i, 1);
                    i--;
                }
            }
        }
    };
    fun(finalTree);
    return finalTree;
}